package com.xinghai.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinghai.common.annotation.Excel;
import com.xinghai.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 用车订单对象 xh_vehicle_order_info
 * 
 * @author xinghai
 * @date 2024-07-23
 */
public class XhVehicleOrderInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 用车任务 */
    @Excel(name = "用车任务")
    private Long vehicleId;

    /** 物流公司 */
    @Excel(name = "物流公司")
    private Long deptId;

    /** 车辆 */
    @Excel(name = "车辆")
    private Long carId;

    /** 司机 */
    @Excel(name = "司机")
    private String driverId;

    /** 状态;状态（0待接收 1待审批 2进行中 3已完成） */
    @Excel(name = "状态", readConverterExp = "0=待接收,1=待审批,2=进行中,3=已完成,4=拒绝接单,5=超时未接单")
    private String status;

    /** 接收时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "接收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date acceptTime;

    /** 接收人 */
    @Excel(name = "接收人")
    private String acceptBy;

    /** 删除标识;删除标志（0代表存在 1代表删除） */
    private String delFlag;

    /** 0 等待接单 1 直接指派 **/
    @Excel(name = "指派类型",dictType = "assign_type")
    private String assignType;

    public String getAssignType() {
        return assignType;
    }
    public void setAssignType(String assignType) {
        this.assignType = assignType;
    }

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setVehicleId(Long vehicleId) 
    {
        this.vehicleId = vehicleId;
    }

    public Long getVehicleId() 
    {
        return vehicleId;
    }
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }
    public void setCarId(Long carId) 
    {
        this.carId = carId;
    }

    public Long getCarId() 
    {
        return carId;
    }
    public void setDriverId(String driverId)
    {
        this.driverId = driverId;
    }

    public String getDriverId()
    {
        return driverId;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setAcceptTime(Date acceptTime)
    {
        this.acceptTime = acceptTime;
    }

    public Date getAcceptTime() 
    {
        return acceptTime;
    }
    public void setAcceptBy(String acceptBy) 
    {
        this.acceptBy = acceptBy;
    }

    public String getAcceptBy() 
    {
        return acceptBy;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("vehicleId", getVehicleId())
            .append("deptId", getDeptId())
            .append("carId", getCarId())
            .append("driverId", getDriverId())
            .append("status", getStatus())
            .append("acceptTime", getAcceptTime())
            .append("acceptBy", getAcceptBy())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .toString();
    }



    /** ============================ 查询用参数-开始 ============================ */

    /** 始发地 */
    @TableField(exist = false)
    private String beginAddr;

    /** 始发地 */
    @TableField(exist = false)
    private String endAddr;

    /** 公里数 */
    @TableField(exist = false)
    private String kilometre;

    /** 发货日期 */
    @TableField(exist = false)
    private Date deliverDate;

    /** 到货日期 */
    @TableField(exist = false)
    private Date needGiveDate;

    /** 车牌号 */
    @TableField(exist = false)
    private String carNo;

    /** 项目名称 */
    @TableField(exist = false)
    private String vehicleName;

    /** 物流公司id数组，查询用 */
    @TableField(exist = false)
    private List<Long> deptIdList = new ArrayList<>();

    /** 司机id数组，查询用 */
    @TableField(exist = false)
    private List<String> driverIdList = new ArrayList<>();

    /** 新增司机信息数组，接单用 */
    @TableField(exist = false)
    private List<XhDriverInfo> appendDriverList = new ArrayList<>();

    /** 接收开始时间 */
    @TableField(exist = false)
    private String acceptDateStart;

    /** 接收结束时间 */
    @TableField(exist = false)
    private String acceptDateEnd;

    /** 节点类型 */
    @TableField(exist = false)
    private String pointType;

    /** 失效开始时间 */
    @TableField(exist = false)
    private String createDateStart;

    /** 失效结束时间 */
    @TableField(exist = false)
    private String createDateEnd;

    public String getCreateDateStart() {
        return createDateStart;
    }

    public void setCreateDateStart(String createDateStart) {
        this.createDateStart = createDateStart;
    }

    public String getCreateDateEnd() {
        return createDateEnd;
    }

    public void setCreateDateEnd(String createDateEnd) {
        this.createDateEnd = createDateEnd;
    }

    public List<String> getDriverIdList() {
        return driverIdList;
    }

    public void setDriverIdList(List<String> driverIdList) {
        this.driverIdList = driverIdList;
    }

    public List<Long> getDeptIdList() {
        return deptIdList;
    }

    public void setDeptIdList(List<Long> deptIdList) {
        this.deptIdList = deptIdList;
    }

    public String getVehicleName() {
        return vehicleName;
    }

    public void setVehicleName(String vehicleName) {
        this.vehicleName = vehicleName;
    }

    public String getCarNo() {
        return carNo;
    }

    public void setCarNo(String carNo) {
        this.carNo = carNo;
    }

    public String getAcceptDateStart() {
        return acceptDateStart;
    }

    public void setAcceptDateStart(String acceptDateStart) {
        this.acceptDateStart = acceptDateStart;
    }

    public String getAcceptDateEnd() {
        return acceptDateEnd;
    }

    public void setAcceptDateEnd(String acceptDateEnd) {
        this.acceptDateEnd = acceptDateEnd;
    }

    public String getPointType() {
        return pointType;
    }

    public void setPointType(String pointType) {
        this.pointType = pointType;
    }

    public List<XhDriverInfo> getAppendDriverList() {
        return appendDriverList;
    }

    public void setAppendDriverList(List<XhDriverInfo> appendDriverList) {
        this.appendDriverList = appendDriverList;
    }

    public String getBeginAddr() {
        return beginAddr;
    }

    public void setBeginAddr(String beginAddr) {
        this.beginAddr = beginAddr;
    }

    public String getEndAddr() {
        return endAddr;
    }

    public void setEndAddr(String endAddr) {
        this.endAddr = endAddr;
    }

    public String getKilometre() {
        return kilometre;
    }

    public void setKilometre(String kilometre) {
        this.kilometre = kilometre;
    }

    public Date getDeliverDate() {
        return deliverDate;
    }

    public void setDeliverDate(Date deliverDate) {
        this.deliverDate = deliverDate;
    }

    public Date getNeedGiveDate() {
        return needGiveDate;
    }

    public void setNeedGiveDate(Date needGiveDate) {
        this.needGiveDate = needGiveDate;
    }
    /** ============================ 查询用参数-结束 ============================ */

}
